This invention relates to an ADPCM encoding and decoding system for providing successive, adaptive, predictive estimates of a voice signal or a voiceband data signal and encoding the signal at a low bit rate.
32-kbit/s ADPCM encoding and decoding circuits are used for transmitting information in a compressed form, principally in fields such as voice communications and analog modem communications. The CCITT (Consultative Committee on International Telephone and Telegraph) has issued a recommendation (G.721) concerning this type of ADPCM encoding and decoding circuits. To facilitate the understanding of this invention, the explanation of the invention will be preceded by an explanation of the CCITT's recommended 32-kbit/s ADPCM encoding and decoding circuits, with reference to FIG. 4A and FIG. 4B.
FIG. 4A shows the configuration of the prior art ADPCM encoder 10; FIG. 4B shows the configuration of the prior art ADPCM decoder 30. The ADPCM encoder 10 is an encoder that converts a 64-kbit/s.mu.-law code or A-law code to a 32-kbit/s code. In this encoder 10, the numeral 11 denotes a PCM input terminal, 12 is an input PCM conversion, 13 is a difference signal computation comprising a subtractor, 14 is an adaptive quantizer, 15 is an inverse adaptive quantizer, 16 is a scale factor generator comprising a quantizer scale factor adaptation 17 and an adaptation speed control 18, 19 is an adaptive predictor, 20 is a reconstructed signal generator comprising an adder, and 21 is the output terminal of the encoder 10.
The decoder 30 is a device for converting a 32-kbit/s code to a 64-kbit/s output signal. The numeral 31 denotes a code input terminal, 32 is an inverse adaptive quantizer, 33 is a scale factor generator comprising a quantizer scale factor adaptation 34 and an adaptation speed control 35, 36 is an adaptive predictor, 37 is a reconstructed signal generator comprising an adder, 38 is an output PCM format conversion, 39 is a synchronous coding adjustment, and 40 is a PCM output terminal.
The operation of this prior art ADPCM encoder and decoder will be explained as follows.
First the operation of the encoder 10 will be explained. A.mu.-law or A-law PCM code So(k) received at the input terminal 11 is converted by the input PCM format conversion 12 to a linear PCM signal S.sub.1 (k) which is supplied to the difference signal computation 13. The output of the difference signal computation 13 is a difference signal d(k) obtained by subtraction of a signal estimate Se(k) given by the adaptive predictor 19 as described later from this signal S.sub.1 (k). The difference signal d(k) is scaled in the next-stage adaptive quantizer 14 by a scale factor y(k) sent from the quantizer scale factor adaptation 17 in the scale factor generator 16, then encoded as a 4-bit code I(k), which is sent at a 32-kbit/s bit rate from the output terminal 21 to the decoder 30, and is also supplied to the inverse adaptive quantizer 15 in the next stage. The inverse adaptive quantizer 15 reconstructs the inversely-quantized value dq(k) of the code I(k) and sends it to the adaptive predictor 19 and the reconstructed signal generator 20. The adaptive predictor 19 receives from the reconstructed signal generator 20 the reconstructed value Sr(k) of the input S.sub.1 (k), and uses it to generate a signal estimate Se(k).
As already noted, the scale factor generator 16 comprises a quantizer scale factor adaptation 17 and an adaptation speed control 18. The adaptation speed control 18 sends a linear combination coefficient a.sub.1 (k) having a value corresponding to the average amplitude of the code I(k) to the quantizer scale factor adaptation 17, which generates the scale factor y(k) given by this coefficient a.sub.1 (k).
First the short-term average value d.sub.ms (k) and the long-term average value d.sub.ml (k) of the amplitude of the code I(k) are calculated in the adaptation speed control 18 having differing time constants. EQU d.sub.ms (k)=(1-2.sup.-5)d.sub.ms (k-1)+2.sup.-5 F{I(k)} (1) EQU d.sub.ml (k)=(1-2.sup.-7)d.sub.ml (k-1)+2.sup.-7 F{I(k)} (2)
where F{I(k)} is a value from a constant table that is predetermined according to I(k) and is read according to I(k) from a memory (not shown in the drawing) disposed in the adaptation speed control 18. A comparison of the values of d.sub.ms (k) and d.sub.ml (k) calculated in this way indicates whether the difference signal d(k) is a time-varying signal, as in the case of a voice signal, or a signal of which the average amplitude is substantially invariant over time, as in the case of a voiceband data signal. The value of the linear combination coefficient (parameter) a.sub.1 (k) sent from the adaptation speed control 18 to the quantizer scale factor adaptation 17 is successively updated so as to approach a value of "1" if the difference signal d(k) is a time-varying signal, or a value of "0" if its average amplitude is substantially invariant over time.
The scale factor generated by the quantizer scale factor adaptation 17 is given by the following formulas: ##EQU1## where y.sub.u (k) is a scale factor for a voice signal, y.sub.l (k) is a scale factor for a voiceband data signal, W{I(k)} is a constant, called an M-table value, predetermined according to I(k), and a.sub.1 (k) is the aforesaid linear combination parameter received from the adaptation speed control 18.
The difference between d.sub.ms (k) and d.sub.ml (k) varies with time depending on, for example, whether the signal is a voice signal or a voiceband data signal. The parameter a.sub.1 (k) is successively updated toward "1" or "0" according to the size of this difference. As a result the scale factor y(k) is determined by the form of the linear combination of y.sub.u (k) and y.sub.l (k). The scale factor y(k) is sent to the adaptive quantizer 14 and the inverse adaptive quantizer 15 to prevent the degradation of quantization characteristics with respect to a variety of signals.
The signal reconstructed by the inverse adaptive quantizer 15 is a quantizer difference signal d.sub.q (k) which includes a quantizing error. This signal d.sub.q (k) is sent to the reconstructed signal generator 20 where it is added to the signal estimate received from the adaptive predictor 19 to generate the reconstructed signal Sr(k) of the linear PCM signal S.sub.1 (k), and this is sent to the adaptive predictor 19. The adaptive predictor 19 comprises a transversal filter, having the tap coefficients which are modified to reduce the power of d(k), namely d.sup.2 (k), and which coefficients are convoluted with the reconstructed signal at a past sampling instant to generate a signal estimate Se(k) of the input signal at the next sampling instant.
The operation of the decoder 30 is described next. The inverse adaptive quantizer 32 in the decoder 30 uses the scale factor y(k) received from the scale factor generator 33 and generates the reconstructed difference signal d.sub.q (k). The reconstructed difference signal d.sub.q (k) is sent to the adaptive predictor 36 and the reconstructed signal generator 37 and is added in the reconstructed signal generator 37 to the signal estimate Se(k) received from the adaptive predictor 36 to form the reconstructed signal S.sub.r (k), which is the reconstructed value of the input signal S.sub.1 (k). The adaptive predictor 36 produces this signal estimate Se(k) from the reconstructed difference signal d.sub.q (k) and the reconstructed signal Sr(k). As long as there are no bit errors between the code output terminal 21 and the code input terminal 31, the scale factor generator 33 (34, 35) and the adaptive predictor 36 of the decoder 30 perform exactly the same operations as the corresponding elements 16 (17, 18) and 19 in the encoder 10, and their internal states also agree. The reconstructed signal Sr(k) of the input signal S.sub.1 (k) is converted by the output PCM format conversion 38 to a.mu.-law or A-law PCM code Sp(K). The code Sp(k) is adjusted using the code I(k), the signal estimate Se(k), and the scale factor y(k) so that even if PCM and ADPCM links are interconnected synchronously, as in a PCM-ADPCM-PCM-ADPCM interconnection, no more degradation occurs than would occur in the first-stage PCM-ADPCM-PCM interconnection; then the code Sp(k) is converted to a.mu.-law or A-law PCM code Sd(k) and is transmitted at a rate of 64-kbit/s from the PCM output terminal 40.
CCITT Study Group XVIII has already reported in its Report R-28 that the 32-kbit/s ADPCM encoding and decoding algorithm described in CCITT recommendation G.721 shows good performances for voice signals and low-speed voiceband data signals (modem signals below 4800 bit/s).
But there are also problems with the characteristics: the adaptive predictor in the prior art ADPCM encoding and decoding circuits has poor predictive capabilities for high-speed modem signals of 7200 bit/s and above, as are widely used in GIII facsimile for example; and even when the power of the input signal is constant, as in a modem signal, the scale factor does not remain fixed but fluctuates, causing degradation of the quantizing characteristics of modem signals. Futhermore, the prior art ADPCM encoding and decoding circuits do not provide functions suited for use in PCM digital speech interpolation (DSI) in the field of international communications via satellite. A particular problem is its inability to transmit three-bit codes, hence its inability to support the method, used in DSI, of preventing a freezeout of tranks when the communication channel is overloaded, by reducing by one the number of bits assigned per channel.